# -*- coding:utf-8 -*-
__author__ = 'zhouyu'
__version__ = 'v0.1'

"""
用元组定义关卡集，规则如下：
  用一个元组代表一个关卡地图；
  元组中的列表表示元素的坐标（注意列表下标与x,y坐标的关系）；
  列表元素值表示游戏元素的类型；

  支持的游戏元素及元素值如下：
"""
ELEM_FLOOR  = 0         # 地板（自由移动，自由覆盖）
ELEM_WALL   = 1         # 墙壁（不可移动，不可覆盖）
ELEM_BOX_F  = 2         # 障碍物（不可移动的箱子，相当于墙壁）
ELEM_BOX_O  = 3         # 空地上的箱子（被动移动）
ELEM_BOX_I  = 4         # 目标里的箱子（被动移动）
ELEM_USR_U  = 5         # 上向角色（保留，暂时不用）
ELEM_USR_L  = 6         # 左向角色（玩家控制的对象，主动移动）
ELEM_USR_R  = 7         # 右向角色（玩家控制的对象，主动移动）
ELEM_USR_D  = 8         # 下向角色（保留，暂时不用）
ELEM_TARGET = 9         # 目标位置
N           = None      # N表示表示地图中的镂空部分

MAPS = (
    # 第1关
    (
        [1, 1, 1, 1, 1, 1, 1],
        [1, 7, 0, 0, 3, 9, 1],
        [1, 0, 0, 0, 3, 9, 1],
        [1, 1, 1, 1, 1, 1, 1],
    ),
    # 第2关
    (
        [1, 1, 1, 1, 1, 1, 1, 1],
        [1, 9, 0, 0, 0, 0, 0, 1],
        [1, 0, 0, 3, 3, 0, 9, 1],
        [1, 7, 0, 0, 0, 0, 0, 1],
        [1, 1, 1, 1, 1, 1, 1, 1]
    ),
    # 第3关
    (
        [1, 1, 1, 1, N, N],
        [1, 0, 9, 1, N, N],
        [1, 0, 0, 1, 1, 1],
        [1, 4, 6, 0, 0, 1],
        [1, 0, 0, 3, 0, 1],
        [1, 0, 0, 1, 1, 1],
        [1, 1, 1, 1, N, N]
    ),
    # 第4关
    (
        [1, 1, 1, 1, 1, 1],
        [1, 0, 0, 0, 0, 1],
        [1, 0, 2, 0, 6, 1],
        [1, 0, 3, 4, 0, 1],
        [1, 0, 9, 4, 0, 1],
        [1, 0, 0, 0, 0, 1],
        [1, 1, 1, 1, 1, 1]
    ),
    # 第5关
    (
        [N, N, 1, 1, 1, 1, N, N, N],
        [1, 1, 1, 0, 0, 1, 1, 1, 1],
        [1, 0, 0, 0, 0, 0, 3, 0, 1],
        [1, 0, 2, 0, 0, 1, 3, 0, 1],
        [1, 0, 9, 0, 9, 1, 6, 0, 1],
        [1, 1, 1, 1, 1, 1, 1, 1, 1]
    ),
    # 第6关
    (
        [1, 1, 1, 1, 1, 1, 1, 1],
        [1, 0, 0, 0, 0, 0, 0, 1],
        [1, 0, 9, 4, 4, 3, 6, 1],
        [1, 0, 0, 0, 0, 0, 0, 1],
        [1, 1, 1, 1, 1, 0, 0, 1],
        [N, N, N, N, 1, 1, 1, 1]
    ),
    # 第7关
    (
        [N, 1, 1, 1, 1, 1, 1, 1],
        [N, 1, 0, 0, 0, 0, 0, 1],
        [N, 1, 0, 9, 3, 9, 0, 1],
        [1, 1, 0, 3, 6, 3, 0, 1],
        [1, 0, 0, 9, 3, 9, 0, 1],
        [1, 0, 0, 0, 0, 0, 0, 1],
        [1, 1, 1, 1, 1, 1, 1, 1]
    ),
    # 第8关
    (
        [1, 1, 1, 1, 1, 1, 1],
        [1, 0, 0, 0, 0, 0, 1],
        [1, 0, 9, 3, 9, 0, 1],
        [1, 0, 3, 9, 3, 0, 1],
        [1, 0, 9, 3, 9, 0, 1],
        [1, 0, 3, 9, 3, 0, 1],
        [1, 0, 0, 6, 0, 0, 1],
        [1, 1, 1, 1, 1, 1, 1]
    ),
    # 第n关
    (
        [1, 1, 1, 1, 1, 1, 1],
        [1, 9, 9, 0, 4, 0, 1],
        [1, 9, 1, 3, 3, 0, 1],
        [1, 3, 0, 0, 3, 0, 1],
        [1, 0, 9, 3, 9, 3, 1],
        [1, 1, 9, 0, 3, 6, 1],
        [1, 1, 1, 1, 1, 1, 1]
    ),
)
